﻿using ProyectoDeTesis.Modelos.Filtros;
using System;
using System.Collections.Generic;
using System.Linq;

namespace ProyectoDeTesis.Controladores
{
    public class LogController
    {
        public List<RegistroActividad> buscarRegistroActividad(FiltroAuditoria filtroAuditoria)
        {
            var db = new Bd_tesisDataContext();
            List<RegistroActividad> listaRegistroActividad = new List<RegistroActividad>();

            try
            {
                var query = from ra in db.RegistroActividad
                            where ra.fecha_registro >= filtroAuditoria.fecha_inicio && ra.fecha_registro <= filtroAuditoria.fecha_fin
                            select ra;

                if (!String.IsNullOrEmpty(filtroAuditoria.usuario))
                {
                    query = query.Where(x => x.Usuario.nombre_usuario.Contains(filtroAuditoria.usuario));
                }
                if (filtroAuditoria.perfil_id > 0)
                {
                    query = query.Where(x => x.id == filtroAuditoria.perfil_id);
                }

                listaRegistroActividad = query.ToList();
                
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            return listaRegistroActividad;
        }

        public Modulo buscarModulo(int modulo_id)
        {
            var db = new Bd_tesisDataContext();
            Modulo modulo = null;

            try
            {
                var query = from m in db.Modulo
                            where m.id == modulo_id
                            select m;

                modulo = query.First();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

            return modulo;
        }

        public void registrarActividad(RegistroActividad r)
        {
            try
            {
                var bd = new Bd_tesisDataContext();
                RegistroActividad registroActividad = new RegistroActividad();
                registroActividad.usuario_id = r.usuario_id;
                registroActividad.modulo_id = r.modulo_id;
                registroActividad.fecha_registro = r.fecha_registro;
                registroActividad.descripcion = r.descripcion;

                bd.RegistroActividad.InsertOnSubmit(registroActividad);
                bd.SubmitChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}
